#ifndef _ADMIN_H
#define _ADMIN_H


#include "book.h"

// 定义最多书本书数量
#define MAX_BOOK_NUM 100

class admin
{
private:
    // 图书馆容器
    vector<book> book_v;

private:
    // 书本名称  用于查找
    string book_name;

public:
    // 构造函数
    admin();

    // 析构函数
    ~admin();

    // 增加书籍  参数:书本类 要插入的书本类
    void add_book(const book& new_book);

    // 删除书籍 参数:要删除书籍的名字
    void delete_book(const string &book_name);

    // 修改书籍信息 
    /* 
        参数 
            @book_name 要修改的书籍 此参数用于查找
            @updated_book 更新后的内容
    */
    void modify_book(const string& book_name, const book& updated_book);

    // 查询书籍 （ 按书名查找 ） 参数:  此参数用于查找
    book search_book(const string& book_name);

    // 查看所有书籍  （ 遍历 ）  
    void view_all_books() const;


public:
    // 伪函数 用于作为查找的伪函数
    bool find_book_name(book book_temp);
    // 
    static void print_book(book temp);

};

#endif // _ADMIN_H
